Обещание javascript внутри объекта

Я могу выполнить обещание внутри объекта addable:. после сохранения нового клиента идентификатор, добавленный в slimselect, должен дождаться нового _id. Спасибо

Pay to*
var Datastore = require('nedb');
var dclipro = new Datastore({filename: '/data/clipro.db', autoload: true});

var selectclipro = new SlimSelect({
                select: '#bcofid_clipro',
                valuesUseText: false,
                addable: function (value) {
                    var newid = "";

                    var agrabar = {
                          name: value,
                          last_idcuenta: "null",
                          email: "[email protected]",
                          memo: "not available",
                          auditlog: moment().format('MMMM Do YYYY, h:mm:ss a')
                    }
                    dclipro.update({name: value}, agrabar, options, function (err, numReplaced, upsert) {

                        if (err) {
                            console.error(err);
                        }
                        newid = upsert._id;

                    })
                    iziToast.show({
                        title: 'Bank',
                        message: 'New Payee has been saved successfully',
                        position: 'topRight'
                    });
                    return { text: value, value: newid }

              },
              onChange: (info) => {
                console.info('elegido : value ' +info.value);
                console.info('elegido : text ' +info.text);
              }
            })

Так где обещание? Как вы пытались использовать один?

Bergi 01.03.2019 13:03

Трудно разобрать, что вы спрашиваете здесь. Похоже, вам нужно addable вернуть объект {text: value, value: newid}. Если вы не можете вернуть Promise от addable, это разрешится на это, то не уверен, что сможете, поскольку dclipro.update() является вашим асинхронным запросом (я предполагаю). Поскольку код работает сейчас, iziToast.show() и возврат будут происходить, пока ваш асинхронный запрос все еще выполняется. Вы не хотели бы показывать этот успех, пока не убедитесь, что у вас нет ошибки (так в обратном вызове update), и вы не можете вернуть то, чего у вас нет.

Steve -Cutter- Blades 01.03.2019 13:26
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
2
191
1

Ответы 1

SlimSelect, вау, эта штука устарела. Из документации видно, что ваш объект return является необязательным, и что вы должны иметь возможность делать что-то вроде selectclipro.setData(myNewValue) внутри обратного вызова обещания, если addable действительно может видеть selectclipro. (Убедитесь, что вы прочитали остальные мои комментарии выше)

Другие вопросы по теме