等待返回undefined的对象的Promise.resolve?

时间:2018-04-13 15:22:45

标签: node.js typescript

所以我试图将一个值存储为一个promise,但是我遇到了一个问题:在Promise.resolve之前定义的对象在等待之后是未定义的。工作流程如下:

console.log(user); // Prints out full user. Yay!
migration.user = Promise.resolve(user);
console.log(migration.user); // Promise { <pending> }
console.log(await migration.user); // undefined

有谁知道会导致这种情况发生的原因?

1 个答案:

答案 0 :(得分:0)

我认为@Bergi解决了这个问题。要了解可能发生的情况,请参阅该示例。

Promise.resolve({then:f=>f()}).then(e=>console.log(e))

即使您的对象不是undefined.resolve也会使用回调调用then函数,然后您获得then函数的结果,而不是对象本身回来了。

查看Promise.resolve说明和thenable for example here