Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.7k views
in Technique[技术] by (71.8m points)

请问,如何返回函数中的promise的值

app.get('/', (req, res) => {
    function fn() {
        return new Promise(function (resolve, reject) {
            let value = 123;
            if (true) {
                resolve(value);
            } else {
                reject(error);
            }
        })
        .then(value => {
            return value
        });
    }
    console.log(fn1()); //这里的打印结果为promise
      
    res.send(fn1()); //这里返回结果为{}
     //预期想取得的值为value(123)
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
app.get('/', (req, res) => {
    function fn() {
        return new Promise(function (resolve, reject) {
            let value = 123;
            if (true) {
                resolve(value);
            } else {
                reject(error);
            }
        })
        .then(value => {
            // 应该在这里打印, 并且在这里 send
            // 可以保证打印出来的是 123,send 出去的也是 123,
            // 但恕我直言,这个 Promise 犹如脱裤子 fart —— 多此一举
            // 耐心等待,应该会有其他好心的答主详述 Promise 的正确用法
            // 甚至会引入 `async/await`
            console.log(value);
            return value
        });
        
        fn();
    }
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...