我正在使用Babel作爲一個項目,我被一個非常基本的問題困住了。我很習慣jQuery的遞延對象,我在努力尋找其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)
})
巴貝爾有一個資料「入門」指南,該指南在ES6談到承諾:https://babeljs.io/docs/learn-es2015/#promises – royhowie
我先讀了它,然後MDN,然後谷歌和我仍然無法得到我的頭:/ – Calvein
可能重複[如何將現有的回調API轉換爲承諾?](http://stackoverflow.com/q/22519784/1048572) – Bergi