我正在将 Babel 用于一个项目,但我遇到了一个非常基本的问题。我非常习惯 jQuery 的 Deferred 对象,我正在努力寻找它的 ES2015 等价物,这就是我基本上想要的:
// file1.js
let dfd = new Promise()
function functionCalledAtSomePoint(thing) {
dfd.resolve(thing)
}
export default { dfd }
// file2.js
import { dfd } from './file1'
dfd.then((thing) => {
console.log('Yay thing:', thing)
})
纠正这个简单的延迟的正确方法应该是什么?
编辑 royhowie 的回答:
// file1.js
let thing
function getThing(_thing) {
return new Promise((resolve) => {
if (el) {
thing = new Thing(el)
}
resolve(thing)
})
}
function functionCalledAtSomePoint(el) {
getThing(el)
}
export default { getThing }
// file2.js
import { getThing } from './file1'
getThing.then((thing) => {
console.log('Yay thing:', thing)
})