Как передать несколько аргументов обещаниям и использовать обещание, основанное на условии? [Дубликат]

Это строка для новых записей. Если вы не хотите, чтобы пользователь создавал новые записи или обрабатывал это из кода, например. с помощью кнопки добавления, отключите CanUserAddRows -описание.

<DataGrid  CanUserAddRows="False" />
99
задан badunk 1 April 2014 в 00:09
поделиться

7 ответов

105
ответ дан Bigood 28 August 2018 в 04:18
поделиться

Отличный вопрос и отличный ответ от Benjamin, Kris и др. Большое спасибо!

Я использую это в проекте и создал модуль на основе кода Бенджамина Грюнвальда . Это доступно на npmjs:

npm i -S promise-spread

Затем в вашем коде выполните

require('promise-spread');

Если вы используете библиотеку, такую ​​как any-promise

var Promise = require('any-promise');
require('promise-spread')(Promise);

Возможно, другие считают это полезным тоже!

2
ответ дан Community 28 August 2018 в 04:18
поделиться

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

14
ответ дан Esailija 28 August 2018 в 04:18
поделиться

Так как функции в Javascript можно вызывать с любым количеством аргументов, и в документе нет каких-либо ограничений на аргументы метода onFulfilled (), кроме предложения ниже, я думаю, что вы можете передать несколько аргументов в onFulfilled () метод, если значение обещания является первым аргументом.

2.2.2.1 it must be called after promise is fulfilled, with promise’s value as its first argument.
0
ответ дан Jazzepi 28 August 2018 в 04:18
поделиться

Насколько я могу судить, прочитав спецификацию ES6 Promise и стандартную спецификацию обещания , не оговорка, запрещающая реализации от обработки этого случая, - однако ее не реализовано в следующие библиотеки:

Я предполагаю, что причина, по которой они опускают несколько аргументов arg, заключается в том, чтобы сделать порядок изменения более кратким (т. е. поскольку вы можете только вернуть одно значение в функции, это сделает поток управления менее интуитивным) Пример:

new Promise(function(resolve, reject) {
   return resolve(5, 4);
})
.then(function(x,y) {
   console.log(y);
   return x; //we can only return 1 value here so the next then will only have 1 argument
})
.then(function(x,y) {
    console.log(y);
});
4
ответ дан megawac 28 August 2018 в 04:18
поделиться

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

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

http://www.html5rocks.com/en/tutorials/ ES6 / обещание /

0
ответ дан Michael Voznesensky 28 August 2018 в 04:18
поделиться
37
ответ дан Wookiem 28 August 2018 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: