Вопросы с тегом «promise»

Обещания - это тактика для отложенных вычислений, подходящая для нескольких стилей параллелизма: параллелизм потока и цикла событий для локальных вычислений, а также синхронный и асинхронный удаленный обмен сообщениями. Обещание представляет возможный результат асинхронной операции. Основным способом работы с обещаниями является метод, который регистрирует преобразования от возможного значения обещания или причины отказа к новому обещанию.

2
Почему Javascript ES6 Promises продолжает выполнение после разрешения?
Насколько я понимаю, обещание - это то, что может разрешить () или отклонить (), но я был удивлен, обнаружив, что код в обещании продолжает выполняться после вызова решения или отклонения. Я считал, что функция resolve или reject является асинхронной версией exit или return, которая остановит все немедленное выполнение функций. Может …

5
В чем разница между обещаниями JavaScript и async await?
Я уже использую функции ECMAScript 6 и ECMAScript 7 (благодаря Babel) в своих приложениях - как мобильных, так и веб-. Первым шагом, очевидно, был уровень ECMAScript 6. Я изучил множество асинхронных шаблонов, обещаний (которые действительно многообещающие), генераторов (не знаю, почему используется символ *) и т. Д. Из них обещания очень …

5
Обещания, передайте дополнительные параметры в цепочку
Обещание, например: var P = new Promise(function (resolve, reject) { var a = 5; if (a) { setTimeout(function(){ resolve(a); }, 3000); } else { reject(a); } }); После вызова метод в обещании: P.then(doWork('text')); Функция doWork выглядит так: function doWork(data) { return function(text) { // sample function to console log consoleToLog(data); …

2
TypeError: невозможно прочитать свойство then of undefined
loginService.islogged() Вышеупомянутая функция возвращает строку типа «сбой». Однако, когда я пытаюсь запустить эту функцию, она вернет ошибку TypeError: Cannot read property 'then' of undefined и курсор указывает сразу после connectedи перед .then. Ниже представлена ​​полная функция: var connected=loginService.islogged(); alert(connected); connected.then(function(msg){ alert("connected value is "+connected); alert("msg.data value is "+msg.data); if(!msg.data.account_session || …

2
Promise.resolve против нового обещания (разрешение)
Я использую bluebird и вижу два способа преобразовать синхронные функции в Promise, но я не вижу различий между ними. Похоже, трассировка стека немного отличается, так что это не просто, не так ли alias? Итак, какой способ предпочтительнее? Путь А function someFunction(someObject) { return new Promise(function(resolve) { someObject.resolved = true; resolve(someObject); …

3
Promise.all (). Then () разрешить?
Используя Node 4.x. Когда у вас есть вопрос, Promise.all(promises).then()как правильно разрешить данные и передать их следующему .then()? Я хочу сделать что-то вроде этого: Promise.all(promises).then(function(data){ // Do something with the data here }).then(function(data){ // Do more stuff here }); Но я не уверен, как получить данные на 2-й .then(). Я не …

3
Как дать обещание из setTimeout
Это не настоящая проблема, я просто пытаюсь понять, как создаются обещания. Мне нужно понять, как дать обещание функции, которая ничего не возвращает, например setTimeout. Предположим, у меня есть: function async(callback){ setTimeout(function(){ callback(); }, 5000); } async(function(){ console.log('async called back'); }); Как создать обещание, которое asyncможет вернуться после того, setTimeoutкак готово …

8
Замена обратных вызовов обещаниями в Node.js
У меня есть простой модуль узла, который подключается к базе данных и имеет несколько функций для получения данных, например эту функцию: dbConnection.js: import mysql from 'mysql'; const connection = mysql.createConnection({ host: 'localhost', user: 'user', password: 'password', database: 'db' }); export default { getUsers(callback) { connection.connect(() => { connection.query('SELECT * FROM …

1
Никогда не выполненное обещание вызывает утечку памяти?
У меня есть Promise. Я создал его, чтобы при необходимости отменить AJAX-запрос. Но поскольку мне не нужно отменять этот AJAX, я никогда не разрешал его, и AJAX успешно завершился. Упрощенный фрагмент: var defer = $q.defer(); $http({url: 'example.com/some/api', timeout: defer.promise}).success(function(data) { // do something }); // Never defer.resolve() because I don't …

5
Как вернуть много обещаний и дождаться их всех, прежде чем делать другие вещи
У меня есть цикл, который вызывает метод, выполняющий асинхронно. Этот цикл может вызывать метод много раз. После этого цикла у меня есть еще один цикл, который нужно выполнить, только когда все асинхронные вещи будут выполнены. Итак, это иллюстрирует то, что я хочу: for (i = 0; i < 5; i++) …

6
Ошибка повторного отображения в обещании catch
В учебнике я нашел следующий код: promise.then(function(result){ //some code }).catch(function(error) { throw(error); }); Я немного сбит с толку: вызов catch что-нибудь дает? Мне кажется, что это не имеет никакого эффекта, так как просто выдает ту же ошибку, которая была поймана. Я основываю это на том, как работает обычный try / …


9
Как правильно вернуть несколько значений из обещания?
Я недавно пару раз сталкивался с определенной ситуацией, которую не знал, как ее решить. Предположим следующий код: somethingAsync() .then( afterSomething ) .then( afterSomethingElse ) function afterSomething( amazingData ) { return processAsync( amazingData ); } function afterSomethingElse( processedData ) { } Теперь может возникнуть ситуация, когда я хотел бы получить доступ …
86 javascript  promise  q 

3
Как тогда справиться с обещанием if-else?
В некоторых случаях, когда я получаю возвращаемое значение от объекта обещания, мне нужно запустить две разные then()прецессы в зависимости от условия значения, например: promise().then(function(value){ if(//true) { // do something } else { // do something } }) Я думаю, может, я смогу написать это так: promise().then(function(value){ if(//true) { // call …

1
Как отвергнуть обещание изнутри, затем функция
Вероятно, это глупый вопрос, но в середине цепочки обещаний, как вы отклоняете обещание изнутри одной из функций then? Например: someActionThatReturnsAPromise() .then(function(resource) { return modifyResource(resource) }) .then(function(modifiedResource) { if (!isValid(modifiedResource)) { var validationError = getValidationError(modifiedResource); // fail promise with validationError } }) .catch(function() { // oh noes }); Больше нет ссылки …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.