Запитання з тегом «promise»

Обіцяння - це тактика відкладених обчислень, яка підходить для декількох стилів одночасності: паралельність потоку та циклу подій для локальних обчислень, а також синхронний та асинхронний віддалений обмін повідомленнями. Обіцянка представляє можливий результат асинхронної операції. Основний спосіб роботи з обіцянками - це метод, який реєструє перетворення від можливої ​​цінності або причини невдачі до нової обіцянки.

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) { // …

2
TypeError: Неможливо прочитати властивість "then" невизначеного
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 …

2
Чому javascript ES6 обіцяє продовження виконання після вирішення?
Як я розумію, обіцянка - це те, що може вирішити () або відхилити (), але я здивувався, дізнавшись, що код у обіцянці продовжує виконуватись після виклику рішення або відхилення. Я вважав, що рішення або відхилення є дружньою до асинхрії версією виходу або повернення, що зупинить виконання негайних функцій. Чи може …

5
Яка різниця між обіцянками JavaScript та асинхронністю?
Я вже використовую функції ECMAScript 6 та ECMAScript 7 (завдяки Babel) у своїх додатках - як для мобільних, так і для Інтернету. Очевидно, першим кроком було досягнення рівня ECMAScript 6. Я дізнався багато асинхронних зразків, обіцянки (які насправді є багатообіцяючими), генератори (не впевнений, чому символ *) тощо. Із них обіцянки …

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

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(). Я не можу …

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 …

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

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 …

9
Обіцянка - чи можна змусити скасувати обіцянку
Я використовую ES6 Promises для керування всіма своїми пошуками мережевих даних, і в деяких ситуаціях мені потрібно змусити їх скасувати. В основному сценарій такий, що я маю пошук наперед за користувальницьким інтерфейсом, де запит делегується до серверної бази, щоб здійснити пошук на основі часткового вводу. Хоча цей мережевий запит (# …

6
Помилка відновлення в обіцянку обіцянки
У підручнику я знайшов такий код: promise.then(function(result){ //some code }).catch(function(error) { throw(error); }); Я трохи заплутався: чи виклик catch щось робить? Мені здається, це не має жодного ефекту, оскільки просто викидає ту саму помилку, яку було виявлено. Я базую це на тому, як працює звичайна спроба / ловля.


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 a new …

1
Як відхилити обіцянку зсередини, тоді функціонувати
Це, мабуть, безглузде питання, але середній ланцюжок обіцянок, як відхилити обіцянку зсередини однієї з тодішніх функцій? Наприклад: 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.