所以我试图将一个值存储为一个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
有谁知道会导致这种情况发生的原因?
答案 0 :(得分:0)
我认为@Bergi解决了这个问题。要了解可能发生的情况,请参阅该示例。
Promise.resolve({then:f=>f()}).then(e=>console.log(e))
即使您的对象不是undefined
,.resolve
也会使用回调调用then
函数,然后您获得then
函数的结果,而不是对象本身回来了。
查看Promise.resolve
说明和thenable
for example here。