Пусть некоторый код делаетКак узнать, разрешено ли обещание?
// promise.js
let p = new Promise(() => { /* ... */ })
export default p
где Promise
является ES6 Promise. Предположим, что какой-либо другой код имеет ссылку только на p
. Как этот код может сказать, разрешен ли p
или нет?
// other.js
import p from './promise.js'
// console.log('p is resolved?', ______)
Есть ли что-то мы можем заполнить пробел с, что бы показать истинные или ложные в зависимости от того, устранено ли обещание или нет?
Это всегда возвращает false. Поместите console.log внутри 'then' import p from './promise.js' var isResolved = false; p.then (функция() { isResolved = true; console.log ('p разрешен?', IsResolved); }); –
Помогите мне исправить себя здесь. Почему вы думаете, что это всегда вернет ложь? – nstoitsev
, потому что javascript является асинхронным и будет выполнять console.log даже до того, как обещание будет разрешено и в то время isResolved имеет значение «false» –