Возврат неопределенного объекта при выполнении запроса

Альтернатива ответу Джулио Гирардо, который разделяет линии в сегментах, вы можете использовать встроенную функцию разворота matplotlib, которые строят линию, используя круги:

from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0,10,10000)
y = 2 - 0.5*np.abs(x-4)
lwidths = (1+x)**2 # scatter 'o' marker size is specified by area not radius 
plt.scatter(x,y, s=lwidths, color='blue')
plt.xlim(0,9)
plt.ylim(0,2.1)
plt.show()

По моему опыту я нашел два проблемы с делением линии на сегменты:

  1. По какой-то причине сегменты всегда делятся на очень тонкие белые линии. Цвета этих линий смешиваются с цветами сегментов при использовании очень большого количества сегментов. Из-за этого цвет линии не такой, как предполагаемый.
  2. Он не очень хорошо обрабатывает очень резкие разрывы.
3
задан Francisco Alisson 5 March 2019 в 18:27
поделиться

2 ответа

Вы неправильно используете объект Promise, возвращенный из getCategory() в вашем экспресс-маршрутизаторе:

    app.get('/', (req, res) => {
        var categories = configDB.getCategory(); <-- this is a Promise, not a synchronous value
        res.render('home', categories);
    });

Вместо этого вы можете использовать async/await, чтобы помочь устранить разрыв между вашим текущим синхронным кодом и у вас есть асинхронный интерфейс базы данных Promise:

    app.get('/', async (req, res) => {
        var categories = await configDB.getCategory();
        res.render('home', categories);
    });
0
ответ дан jakemingolla 5 March 2019 в 18:27
поделиться

Вдохновленный ответом @jakemingolla, предложившего async-await, я начал использовать callback для возврата объекта 'Categories', и все работало отлично.

функция в моем файле dbconfig.js

const getCategoryList = (callback) => {
    CategoryRef.find().then((categories) => {
        callback(categories);
    })
}

, вызывающая функцию в моем файле app.js

app.get('/', (req, res) => {
    database.getCategoryHomeList((categories) => {
        res.render('home', {categories: categories});
    })
});
0
ответ дан Francisco Alisson 5 March 2019 в 18:27
поделиться
Другие вопросы по тегам:

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